
static int destForm, sourceForm, halftoneForm, combinationRule, destX, destY, width;
static int height, sourceX, sourceY, clipX, clipY, clipWidth, clipHeight, sourceWidth;
static int sourceHeight, sourceDepth, sourcePitch, sourceBits, sourcePPW, sourceMSB;
static int destWidth, destHeight, destDepth, destPitch, destBits, destPPW, destMSB;
static int bitCount, skew, mask1, mask2, preload, nWords, destMask, hDir, vDir;
static int sourceIndex, sourceDelta, destIndex, destDelta, sx, sy, dx, dy, bbW, bbH;
static int halftoneHeight, noSource, noHalftone, halftoneBase, sourceAlpha, srcBitShift;
static int dstBitShift, bitBltOop, affectedL, affectedR, affectedT, affectedB, opTable;
static int maskTable, ditherMatrix4x4, ditherThresholds16, ditherValues16, hasSurfaceLock;
static int warpSrcShift, warpSrcMask, warpAlignShift, warpAlignMask, warpBitShiftTable;
static int querySurfaceFn, lockSurfaceFn, unlockSurfaceFn, isWarping, cmFlags, cmMask;
static int cmShiftTable, cmMaskTable, cmLookupTable, cmBitsPerColor, dither8Lookup;

void primCopyBits() {
	int myBitBltThingy = peak(argumentCount);
	if(!loadBitBltFrom(myBitBltThingy)) {
		success = FALSE;
		return;
	}
	copyBits();
	if(!success) {
		return;
	}
	popN(argumentCount);
	if(combinationRule == 22 || combinationRule == 32) {
		pop();
		push(packSmInt(bitCount));
	}
}

void copyBits() {
	
}

bool loadBitBltFrom() {
	
}
